/*
 * @Descripttion: 描述
 * @Author: 刘黎
 * @Date: 2024-05-06 19:10:29
 * @LastEditors: 刘黎
 * @LastEditTime: 2024-07-02 15:57:31
 */
import { ref } from 'vue';
export let percentComplete = ref(0);
export let ShardingTips = ref('上传进度');
// 存储空间名称。既可以在这里配置，也可以在SDK中全局配置。
// 例如 var bucketName = "example-name";
var bucketName = "wxoss";

// 存储空间域名URL地址。既可以在这里配置，也可以在SDK中全局配置。
// 例如 var bucketUrl = "https://example-name.cn-bj.ufileos.com/";
var bucketUrl = "http://wxoss.cn-bj.ufileos.com/";

// 令牌公钥。既可以在这里配置，也可以在SDK中全局配置。
// var tokenPublicKey = 'TOKEN_48b6cXXXXXXc-42b5-9853-4d25cc22927b';
var tokenPublicKey = 'TOKEN_4cc022b9-e302-4215-8794-da60578b0ad6';

// 令牌私钥。既可以在这里配置，也可以在SDK中全局配置。
// var tokenPrivateKey = 'eda2585XXXXXX-40a7-be17-adf7a6bc5d59';
var tokenPrivateKey = '1b819f06-526e-452e-aa4d-286f217fe682';

// 计算token的地址。既可以在这里配置，也可以在SDK中全局配置。
// 例如 tokenServerUrl = "http://localhost:8080/token_server.php";
var tokenServerUrl = "";

//令牌配置的前缀，无前缀填空字符串
var prefix = '';

// 实例化UCloudUFile
var ufile = new UCloudUFile(bucketName, bucketUrl, tokenPublicKey, tokenPrivateKey, tokenServerUrl, prefix);
// let percentComplete = 0;
export function uploaderChange(file, text) {
    return new Promise((resolve, reject) => {
        console.log(file)
        // 普通上传
        if (text  == "普通上传") {
            // var fileRename = '上传的名称';
            // var file = document.getElementById("uploader").files[0];
            var data = {
                file: file.raw,
                fileRename: file.raw.name
            };

            var successCallBack = function(res) {
                resolve(res)
                // ElMessageBox.close() // 上传成功关闭提示框
                console.log(res)
                // $("#result").html("上传成功");
                // $("#result").append(JSON.stringify(res));
            };
            var progressCallBack = function(res) {
                console.log(res)
                percentComplete.value = Math.floor(res * 10000) / 100
                // $("#result").html(percentComplete);
            };
            var errorCallBack = function(res){
                // $("#result").html("errorCallBack: " + JSON.stringify(res));
                console.error("errorCallBack", res)
                reject(false)
            };
            // console.log(ufile)
            ufile.uploadFile(data, successCallBack, errorCallBack, progressCallBack);
        } else if (text  == "分片上传") {
            data = {
                file: file.raw,
                fileRename: file.raw.name
            };
            successCallBack = function(res) {// 成功
                console.log('分片视频返回值')
                console.log(res)
                resolve(res)
            };
            progressCallBack = function(res) {
                console.log('分片进行中返回值')
                console.log(res)
                if (res.status == "init") {
                    ShardingTips.value = "初始化分片：";
                } else if (res.status == "uploading") {
                    ShardingTips.value = "分片上传中：";
                }  else if (res.status == "uploaded") {
                    ShardingTips.value = "完成分片：";
                }
                percentComplete.value = Math.floor(res.value * 10000) / 100
            };
            var errorCallBack = function(res){
                // $("#result").html("errorCallBack: " + JSON.stringify(res));
                console.error("errorCallBack", res)
                reject(false)
            };
            ufile.sliceUpload(data, successCallBack, errorCallBack, progressCallBack);
        }
    })
}
